package com.wicket.okrpbff.web.contorller;

import com.wicket.okrpbff.biz.service.HostTypeService;
import com.wicket.okrpbff.biz.service.dto.req.*;
import com.wicket.okrpbff.biz.service.dto.res.*;
import com.wicket.okrpbff.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrframework.integration.FwBaseHostTypeClient;
import com.wicket.okrframework.integration.dto.QueryHostTypeListRespDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeListReqDto;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComReqDto;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrframework.integration.dto.QueryHostTypeDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeDetailReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComReqDto;
import com.wicket.okrpbff.common.exception.Assert;
import com.wicket.okrframework.integration.dto.AddHostTypeRespDto;
import com.wicket.okrframework.integration.dto.AddHostTypeReqDto;
import com.wicket.okrframework.integration.dto.UpdateHostTypeRespDto;
import com.wicket.okrframework.integration.dto.UpdateHostTypeReqDto;
import com.wicket.okrframework.integration.dto.AddHostTypeBizScnRespDto;
import com.wicket.okrframework.integration.dto.AddHostTypeBizScnReqDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeBizScnListRespDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeBizScnListReqDto;
import com.wicket.okrframework.integration.FwBaseAppSceneClient;
import com.wicket.okrframework.integration.dto.BatchQueryBizSceneRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryBizSceneReqDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeListBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeListBorderReqDto;
import com.wicket.okrpbff.biz.service.dto.common.BffHostTypeDto;
import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrframework.integration.dto.ReleaseHostTypeBizScnRespDto;
import com.wicket.okrframework.integration.dto.ReleaseHostTypeBizScnReqDto;
import com.wicket.okrframework.integration.dto.ArchiveArchiveHostTypeBizScnRespDto;
import com.wicket.okrframework.integration.dto.ArchiveArchiveHostTypeBizScnReqDto;
import com.wicket.okrframework.integration.dto.QueryBizSceneHostTypeListRespDto;
import com.wicket.okrframework.integration.dto.QueryBizSceneHostTypeListReqDto;
import com.wicket.okrframework.integration.dto.DeleteHostTypeBizScnRespDto;
import com.wicket.okrframework.integration.dto.DeleteHostTypeBizScnReqDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordComReqDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Api(value = "HostType", tags = {"HostType"})
@RestController
// @RequestMapping("/poms/hostType/")
public class HostTypeController {
    @Autowired
    HostTypeService hostTypeService;

    /**
   * B1-1查询宿主类型列表（平台）
   * gen by moon at 11/4/2022, 11:01:04 PM
   */
    @PostMapping("/oms/platform/hostType/queryHostTypeList")
    @ApiOperation(value = "B1-1查询宿主类型列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryHostTypeListRespDto> queryHostTypeList(@RequestBody(required=false) @Validated BffQueryHostTypeListReqDto reqDTO){
        return OkrResult.success(hostTypeService.queryHostTypeList(reqDTO));
    }

    /**
   * B1-1存档宿主类型推荐到业务场景（平台）
   * gen by moon at 8/10/2022, 3:43:39 AM
   */
    @PostMapping("/oms/platform/hostType/archiveHostTypeBizScn")
    @ApiOperation(value = "B1-1存档宿主类型推荐到业务场景（平台）", response = OkrResult.class)
    public OkrResult<BffArchiveHostTypeBizScnRespDto> archiveHostTypeBizScn(@RequestBody(required=false) @Validated BffArchiveHostTypeBizScnReqDto reqDTO){
        return OkrResult.success(hostTypeService.archiveHostTypeBizScn(reqDTO));
    }

    /**
   * B1-1发布宿主类型推荐到业务场景（平台）
   * gen by moon at 8/10/2022, 3:43:35 AM
   */
    @PostMapping("/oms/platform/hostType/releaseHostTypeBizScn")
    @ApiOperation(value = "B1-1发布宿主类型推荐到业务场景（平台）", response = OkrResult.class)
    public OkrResult<BffReleaseHostTypeBizScnRespDto> releaseHostTypeBizScn(@RequestBody(required=false) @Validated BffReleaseHostTypeBizScnReqDto reqDTO){
        return OkrResult.success(hostTypeService.releaseHostTypeBizScn(reqDTO));
    }

    /**
   * B1-1查询宿主类型菜单列表（平台）
   * gen by moon at 8/10/2022, 3:42:25 AM
   */
    @PostMapping("/oms/platform/hostType/queryHostTypeMenuList")
    @ApiOperation(value = "B1-1查询宿主类型菜单列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryHostTypeMenuListRespDto> queryHostTypeMenuList(@RequestBody(required=false) @Validated BffQueryHostTypeMenuListReqDto reqDTO){
        return OkrResult.success(hostTypeService.queryHostTypeMenuList(reqDTO));
    }

    /**
   * B1-1查询宿主类型推荐列表（平台）
   * gen by moon at 8/15/2022, 10:27:39 PM
   */
    @PostMapping("/oms/platform/hostType/queryHostTypeBizList")
    @ApiOperation(value = "B1-1查询宿主类型推荐列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryHostTypeBizListRespDto> queryHostTypeBizList(@RequestBody(required=false) @Validated BffQueryHostTypeBizListReqDto reqDTO){
        return OkrResult.success(hostTypeService.queryHostTypeBizList(reqDTO));
    }

    /**
   * B1-1查询宿主类型推荐的业务场景列表（平台）
   * gen by moon at 8/26/2022, 3:13:34 PM
   */
    @PostMapping("/oms/platform/hostType/queryHostTypeBizScnList")
    @ApiOperation(value = "B1-1查询宿主类型推荐的业务场景列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryHostTypeBizScnListRespDto> queryHostTypeBizScnList(@RequestBody(required=false) @Validated BffQueryHostTypeBizScnListReqDto reqDTO){
        return OkrResult.success(hostTypeService.queryHostTypeBizScnList(reqDTO));
    }

    /**
   * B1-1新增宿主类型推荐到业务场景（平台）
   * gen by moon at 10/25/2022, 10:01:09 AM
   */
    @PostMapping("/oms/platform/hostType/addHostTypeBizScn")
    @ApiOperation(value = "B1-1新增宿主类型推荐到业务场景（平台）", response = OkrResult.class)
    public OkrResult<BffAddHostTypeBizScnRespDto> addHostTypeBizScn(@RequestBody(required=false) @Validated BffAddHostTypeBizScnReqDto reqDTO){
        return OkrResult.success(hostTypeService.addHostTypeBizScn(reqDTO));
    }

    /**
   * B1-1修改宿主类型（平台）
   * gen by moon at 8/10/2022, 3:42:13 AM
   */
    @PostMapping("/oms/platform/hostType/updateHostType")
    @ApiOperation(value = "B1-1修改宿主类型（平台）", response = OkrResult.class)
    public OkrResult<BffUpdateHostTypeRespDto> updateHostType(@RequestBody(required=false) @Validated BffUpdateHostTypeReqDto reqDTO){
        return OkrResult.success(hostTypeService.updateHostType(reqDTO));
    }

    /**
   * B1-1新增宿主类型（平台）
   * gen by moon at 10/11/2022, 6:09:57 PM
   */
    @PostMapping("/oms/platform/hostType/addHostType")
    @ApiOperation(value = "B1-1新增宿主类型（平台）", response = OkrResult.class)
    public OkrResult<BffAddHostTypeRespDto> addHostType(@RequestBody(required=false) @Validated BffAddHostTypeReqDto reqDTO){
        return OkrResult.success(hostTypeService.addHostType(reqDTO));
    }

    /**
   * B1-1查询宿主类型详情（平台）
   * gen by moon at 8/10/2022, 3:42:10 AM
   */
    @PostMapping("/oms/platform/hostType/queryHostTypeDetail")
    @ApiOperation(value = "B1-1查询宿主类型详情（平台）", response = OkrResult.class)
    public OkrResult<BffQueryHostTypeDetailRespDto> queryHostTypeDetail(@RequestBody(required=false) @Validated BffQueryHostTypeDetailReqDto reqDTO){
        return OkrResult.success(hostTypeService.queryHostTypeDetail(reqDTO));
    }
/**
   * B1查询业务场景下宿主类型列表(管理)
   * gen by moon at 11/7/2022, 11:50:32 PM
   */
    @PostMapping("/oms/platform/mgt/hostType/queryBizSceneHostTypeList")
    @ApiOperation(value = "B1查询业务场景下宿主类型列表(管理)", response = OkrResult.class)
    public OkrResult<BffQueryBizSceneHostTypeListRespDto> queryBizSceneHostTypeList(@RequestBody(required=false) @Validated BffQueryBizSceneHostTypeListReqDto reqDTO){
        return OkrResult.success(hostTypeService.queryBizSceneHostTypeList(reqDTO));
    }
/**
   * B1-1删除宿主类型推荐的业务场景(管理)
   * gen by moon at 10/28/2022, 8:54:29 PM
   */
    @PostMapping("/oms/platform/mgt/hostType/deleteHostTypeBizScn")
    @ApiOperation(value = "B1-1删除宿主类型推荐的业务场景(管理)", response = OkrResult.class)
    public OkrResult<BffDeleteHostTypeBizScnRespDto> deleteHostTypeBizScn(@RequestBody(required=false) @Validated BffDeleteHostTypeBizScnReqDto reqDTO){
        return OkrResult.success(hostTypeService.deleteHostTypeBizScn(reqDTO));
    }

}

